package com.hanliy.storage;

import java.io.InputStream;

/**
 * @author hanyulin
 * @apiNote 提供不同的存储服务类，所有存储服务均由该类对外提供
 * @date 2021/12/3 9:49
 */
public interface StorageType {

    /**
     * 存储一个文件对象
     *
     * @param inputStream   文件输入流
     * @param contentLength 文件长度
     * @param contentType   文件类型
     * @param keyName       文件名
     */
    void store(InputStream inputStream, long contentLength, String contentType, String keyName);

    /**
     * 通过唯一标识，产生访问路径
     * 
     * @param keyName 唯一标识名称
     * @return 访问路径
     */
    String generateUrl(String keyName);

    /**
     * 删除
     *
     * @param key 唯一标识符
     * @author hanyulin
     * @date 2021/12/6 9:17
     */
    void delete(String key);
}
